readBytes{
  long l=Decoders.readLong(is);
  if (l > Integer.MAX_VALUE) {
  int size=(int)l;
  io.netty.buffer.ByteBuf.readSlice
  io.netty.buffer.ByteBuf.readByte
  io.netty.buffer.ByteBuf.readByte
  if (cr != Decoders.CR || lf != Decoders.LF) {
}
receive{
  io.netty.buffer.ByteBuf.readByte
switch (code) {
case StatusReply.MARKER:
      io.netty.buffer.ByteBuf.readBytes
      io.netty.buffer.ByteBuf.skipBytes
      return new StatusReply(status);
case ErrorReply.MARKER:
    io.netty.buffer.ByteBuf.readBytes
    io.netty.buffer.ByteBuf.skipBytes
    return new ErrorReply(error);
case IntegerReply.MARKER:
  return new IntegerReply(Decoders.readLong(is));
case BulkReply.MARKER:
return new BulkReply(readBytes(is));
case MultiBulkReply.MARKER:
return decodeMultiBulkReply(is);
}
checkpoint{ }
decodeMultiBulkReply{
    if (reply == null) {
      reply=new MultiBulkReply(this,is);
 else {
      reply.read(this,is);
    return reply;
    reply=null;
}
decode{ }
